Skip to content

Close the last findings of the sixth review - #72

Merged
74nu5 merged 1 commit into
mainfrom
fix/final-review6-items
Jul 19, 2026
Merged

Close the last findings of the sixth review#72
74nu5 merged 1 commit into
mainfrom
fix/final-review6-items

Conversation

@74nu5

@74nu5 74nu5 commented Jul 19, 2026

Copy link
Copy Markdown
Owner

Les trois derniers points de la sixième revue.

Le comportement que je n'avais pas su caractériser

La complétion cessait d'offrir les propriétés d'un objet dès qu'on tapait un caractère après le point. ExtractObjectPath exigeait que la ligne se termine par un point, et l'éditeur relance la requête à chaque frappe : la liste apparaissait après Server. et disparaissait à Server.P — précisément quand elle devient utile.

L'identifiant en cours de frappe est maintenant retiré avant de chercher le point ; le filtrage était déjà géré à part.

La réponse à la question du tour précédent était donc : ça ne marchait pas. J'avais supprimé le test plutôt que de deviner ; il est de retour, et il vérifie les deux choses — la propriété est offerte, et la liste est réduite à ce qui correspond.

Quatre invariants que rien ne protégeait

Le test par mutation les avait signalés :

Invariant Pourquoi ça compte
Court-circuit de and/or Écrit et commenté, observable seulement si le côté droit échoue
Détection des let dupliqués Validation délibérée, message utilisateur, aucun test
Normalisation LF en sortie Sinon chaque diff est brassé sur chaque plateforme
Casse des entrées de tableau aplaties Sinon un champ redéfini avec une autre casse est signalé comme fuyant

Trois affirmations documentaires fausses

  • La sortie va dans le répertoire courant, pas « à côté du fichier source ».
  • Les virgules ne sont optionnelles qu'entre lignes : deux éléments sur la même ligne en exigent une.
  • La spécification annonçait « exactement un bloc settings » — faux depuis que plusieurs blocs fusionnent en profondeur, ce qui est justement ce qui permet à un fichier inclus d'en contribuer un.

409 → 415 tests.

🤖 Generated with Claude Code

The completion handler stopped offering object properties the moment a character
was typed after the dot. ExtractObjectPath required the line to end with one, and
the editor re-requests completion on every keystroke — so the list appeared after
"Server." and vanished at "Server.P", exactly when it becomes useful. The
identifier being typed is now stripped before looking for the dot; filtering it
was already handled separately. This is the behaviour the previous round could not
characterise and removed a test for rather than guess at. The answer was that it
did not work.

Four invariants that mutation testing showed nothing protected now have tests:
short-circuit evaluation of and/or, which is written and commented but was only
observable when the right side would fail; duplicate let detection, a deliberate
validation with a user-facing message and no test anywhere; LF normalisation of
generated files, which would churn every diff on every platform; and
case-insensitive comparison of flattened array entries, which would otherwise
report a field as leaking when the override does redefine it in different casing.

Three documentation claims corrected against what the compiler does: output goes
to the current directory, not next to the source; commas are optional only across
newlines, since two items on one line still need one; and the specification's
"exactly one settings block" has been wrong since multiple blocks began to
deep-merge, which is what lets an included file contribute one.

409 -> 415 tests.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@74nu5
74nu5 merged commit 0148dcd into main Jul 19, 2026
5 checks passed
@74nu5
74nu5 deleted the fix/final-review6-items branch July 19, 2026 20:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant